--- /dev/null
+#
+# Copyright (C) 2007-2013 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=libtorrent
+PKG_VERSION:=0.13.4-git
+PKG_RELEASE=$(PKG_SOURCE_VERSION)-1
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://github.com/rakshasa/libtorrent.git
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+PKG_SOURCE_VERSION:=51cd5ea8913a5f5062813d9f5b6256c76d41ea11
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
+
+PKG_FIXUP:=autoreconf
+PKG_BUILD_PARALLEL:=1
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/libtorrent
+ SECTION:=libs
+ CATEGORY:=Libraries
+ TITLE:=Rakshasa's BitTorrent library
+ URL:=http://libtorrent.rakshasa.no/
+ DEPENDS:=+libopenssl +libsigcxx
+endef
+
+define Package/libtorrent/description
+ LibTorrent is a BitTorrent library written in C++ for *nix, with a focus on
+ high performance and good code. The library differentiates itself from other
+ implementations by transfering directly from file pages to the network stack.
+ On high-bandwidth connections it is able to seed at 3 times the speed of the
+ official client.
+endef
+
+TARGET_LDFLAGS += $(LIBGCC_S)
+
+CONFIGURE_ARGS+= \
+ --enable-shared \
+ --enable-static \
+ --enable-aligned \
+ --disable-debug \
+ --enable-openssl \
+ --disable-instrumentation
+
+define Build/Configure
+ ( cd $(PKG_BUILD_DIR); ./autogen.sh );
+ $(call Build/Configure/Default)
+endef
+
+define Build/InstallDev
+ $(INSTALL_DIR) $(1)/usr/include
+ $(CP) $(PKG_INSTALL_DIR)/usr/include/torrent $(1)/usr/include/
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libtorrent.{a,so*} $(1)/usr/lib/
+ $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libtorrent.pc $(1)/usr/lib/pkgconfig/
+endef
+
+define Package/libtorrent/install
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libtorrent.so.* $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,libtorrent))
--- /dev/null
+--- a/configure.ac
++++ b/configure.ac
+@@ -19,7 +19,6 @@ AC_SUBST(LIBTORRENT_INTERFACE_VERSION_NO
+
+ AM_INIT_AUTOMAKE
+ AC_CONFIG_HEADERS(config.h)
+-AM_PATH_CPPUNIT(1.9.6)
+
+ AC_PROG_CXX
+
+--- a/scripts/checks.m4
++++ b/scripts/checks.m4
+@@ -96,7 +96,7 @@ AC_DEFUN([TORRENT_CHECK_KQUEUE], [
+ AC_DEFUN([TORRENT_CHECK_KQUEUE_SOCKET_ONLY], [
+ AC_MSG_CHECKING(whether kqueue supports pipes and ptys)
+
+- AC_RUN_IFELSE([AC_LANG_SOURCE([
++ AC_LINK_IFELSE([AC_LANG_SOURCE([
+ #include <fcntl.h>
+ #include <stdlib.h>
+ #include <unistd.h>
+--- a/scripts/common.m4
++++ b/scripts/common.m4
+@@ -223,7 +223,7 @@ dnl Need to fix this so that it uses t
+ AC_DEFUN([TORRENT_CHECK_EXECINFO], [
+ AC_MSG_CHECKING(for execinfo.h)
+
+- AC_RUN_IFELSE([AC_LANG_SOURCE([
++ AC_LINK_IFELSE([AC_LANG_SOURCE([
+ #include <execinfo.h>
+ int main() { backtrace((void**)0, 0); backtrace_symbols((char**)0, 0); return 0;}
+ ])],
+@@ -238,7 +238,7 @@ AC_DEFUN([TORRENT_CHECK_EXECINFO], [
+ AC_DEFUN([TORRENT_CHECK_ALIGNED], [
+ AC_MSG_CHECKING(the byte alignment)
+
+- AC_RUN_IFELSE([AC_LANG_SOURCE([
++ AC_LINK_IFELSE([AC_LANG_SOURCE([
+ #include <inttypes.h>
+ int main() {
+ char buf@<:@8@:>@ = { 0, 0, 0, 0, 1, 0, 0, 0 };
--- /dev/null
+--- a/src/net/socket_datagram.cc
++++ b/src/net/socket_datagram.cc
+@@ -73,6 +73,23 @@ SocketDatagram::write_datagram(const voi
+ int r;
+
+ if (sa != NULL) {
++#ifdef RAK_USE_INET6
++ if (m_ipv6_socket && sa->family() == rak::socket_address::pf_inet) {
++ uint32_t addr32[4];
++ sockaddr_in6 mapped_addr;
++ memset(&mapped_addr, 0, sizeof(mapped_addr));
++ mapped_addr.sin6_family = AF_INET6;
++ addr32[0] = 0;
++ addr32[1] = 0;
++ addr32[2] = htonl(0xffff);
++ addr32[3] = sa->sa_inet()->address_n();
++ memcpy(mapped_addr.sin6_addr.s6_addr, addr32, sizeof(uint32_t) * 4);
++ mapped_addr.sin6_port = sa->sa_inet()->port_n();
++ r = ::sendto(m_fileDesc, buffer, length, 0, (sockaddr*)&mapped_addr, sizeof(mapped_addr));
++ } else if (m_ipv6_socket && sa->family() == rak::socket_address::pf_inet6) {
++ r = ::sendto(m_fileDesc, buffer, length, 0, sa->sa_inet6()->c_sockaddr(), sizeof(rak::socket_address_inet6));
++ } else
++#endif
+ r = ::sendto(m_fileDesc, buffer, length, 0, sa->sa_inet()->c_sockaddr(), sizeof(rak::socket_address_inet));
+ } else {
+ r = ::send(m_fileDesc, buffer, length, 0);
--- /dev/null
+#
+# Copyright (C) 2007-2013 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=rtorrent
+PKG_VERSION:=0.9.4-git
+PKG_RELEASE:=$(PKG_SOURCE_VERSION)-1
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://github.com/rakshasa/rtorrent.git
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+PKG_SOURCE_VERSION:=6a3234eaa79f15857260df31f98711ef24266191
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
+
+PKG_FIXUP:=autoreconf
+PKG_BUILD_PARALLEL:=1
+PKG_INSTALL:=1
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/rtorrent/Default
+ SUBMENU:=BitTorrent
+ SECTION:=net
+ CATEGORY:=Network
+ TITLE:=BitTorrent client for ncurses
+ URL:=http://libtorrent.rakshasa.no/
+ DEPENDS:=+libcurl +libtorrent +libncursesw +libsigcxx +libpthread
+endef
+
+define Package/rtorrent/Default/description
+ rTorrent is a BitTorrent client for ncurses, using the libtorrent library.
+ The client and library is written in C++ with emphasis on speed and
+ efficiency, while delivering equivalent features to those found in GUI based
+ clients in an ncurses client.
+endef
+
+define Package/rtorrent
+$(call Package/rtorrent/Default)
+ VARIANT:=norpc
+endef
+
+define Package/rtorrent/description
+$(call Package/rtorrent/Default/description)
+ This package is built without xmlrpc support
+endef
+
+define Package/rtorrent-rpc
+$(call Package/rtorrent/Default)
+ VARIANT:=rpc
+ DEPENDS+=+xmlrpc-c-server
+ TITLE+=(with rpc support)
+endef
+
+define Package/rtorrent-rpc/description
+$(call Package/rtorrent/Default/description)
+ This package is built with xmlrpc support
+endef
+
+TARGET_LDFLAGS += -lpthread -Wl,-rpath-link=$(STAGING_DIR)/usr/lib
+
+CONFIGURE_ARGS+= \
+ --enable-shared \
+ --disable-static \
+ --disable-debug
+
+ifeq ($(BUILD_VARIANT),rpc)
+ CONFIGURE_ARGS += \
+ --with-xmlrpc-c
+endif
+
+
+define Build/Configure
+ ( cd $(PKG_BUILD_DIR); ./autogen.sh );
+ $(call Build/Configure/Default)
+endef
+
+define Package/rtorrent/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/rtorrent $(1)/usr/bin/
+endef
+
+Package/rtorrent-rpc/install = $(Package/rtorrent/install)
+
+$(eval $(call BuildPackage,rtorrent))
+$(eval $(call BuildPackage,rtorrent-rpc))
--- /dev/null
+--- a/configure.ac
++++ b/configure.ac
+@@ -4,7 +4,6 @@ AC_DEFINE(API_VERSION, 8, api version)
+
+ AM_INIT_AUTOMAKE
+ AC_CONFIG_HEADERS(config.h)
+-AM_PATH_CPPUNIT(1.9.6)
+
+ AC_PROG_CXX
+ AC_PROG_LIBTOOL
+--- a/scripts/common.m4
++++ b/scripts/common.m4
+@@ -223,7 +223,7 @@ dnl Need to fix this so that it uses t
+ AC_DEFUN([TORRENT_CHECK_EXECINFO], [
+ AC_MSG_CHECKING(for execinfo.h)
+
+- AC_RUN_IFELSE([AC_LANG_SOURCE([
++ AC_LINK_IFELSE([AC_LANG_SOURCE([
+ #include <execinfo.h>
+ int main() { backtrace((void**)0, 0); backtrace_symbols((char**)0, 0); return 0;}
+ ])],
+@@ -238,7 +238,7 @@ AC_DEFUN([TORRENT_CHECK_EXECINFO], [
+ AC_DEFUN([TORRENT_CHECK_ALIGNED], [
+ AC_MSG_CHECKING(the byte alignment)
+
+- AC_RUN_IFELSE([AC_LANG_SOURCE([
++ AC_LINK_IFELSE([AC_LANG_SOURCE([
+ #include <inttypes.h>
+ int main() {
+ char buf@<:@8@:>@ = { 0, 0, 0, 0, 1, 0, 0, 0 };
--- /dev/null
+--- a/src/display/canvas.h
++++ b/src/display/canvas.h
+@@ -48,7 +48,7 @@ class Canvas {
+ public:
+ typedef std::vector<Attributes> attributes_list;
+
+- Canvas(int x = 0, int y = 0, int width = 0, int height = 0);
++ Canvas(int x = 0, int y = 0, int width = 1, int height = 1);
+ ~Canvas() { delwin(m_window); }
+
+ void refresh() { wnoutrefresh(m_window); }